#ifndef _ITIMER_H_
#define _ITIMER_H_

interface ITimerProc : public IBase
{
    std_method(OnTimer)(crtid cid, crterr err) PURE;
};

// {B5819C73-6EF7-4F25-B053-F6F6D4DCBE00}
_DEF_IID(IID_ITimerProc, 0xb5819c73, 0x6ef7, 0x4f25, 0xb0, 0x53, 0xf6, 0xf6, 0xd4, 0xdc, 0xbe, 0x0);

interface ITimer : public IBase
{
    std_method(Start)() PURE;
    std_method(Stop)() PURE;
    std_method(SetSec)(int sec) PURE;
    std_method(Bind)(IBase* pBase) PURE;
    std_method(UnBind)() PURE;
    std_method_(crtid, GetId)() PURE;
    std_method(SetId)(crtid cid) PURE;
};

// {F36A3734-C9CA-46C9-8F03-AD02AD24058F}
_DEF_IID(IID_ITimer, 0xf36a3734, 0xc9ca, 0x46c9, 0x8f, 0x3, 0xad, 0x2, 0xad, 0x24, 0x5, 0x8f);

#endif
